package net.feixiang.creational.singleton.eager;

/**
 * 饿汉式单例类。特点：类加载时立即初始化实例（非延迟加载）。
 *
 * @see <a href="https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/11.html">单例模式</a>
 * @author 飞翔
 */
public class EagerSingleton {
    // 静态常量在类加载时直接初始化实例
    // final 保证实例不可变，static 保证实例在类级别唯一性
    // 线程安全：由 JVM 类加载机制保证（天然线程安全）
    private static final EagerSingleton instance = new EagerSingleton();

    /**
     * 私有构造函数
     * 作用：阻止外部通过 new 关键字创建实例
     */
    private EagerSingleton() {}

    /**
     * 获取单例实例的全局访问点
     * @return 已预先创建的单例实例
     */
    public static EagerSingleton getInstance() {
        // 直接返回类加载时已初始化的实例
        return instance;
    }

    /**
     * 示例业务方法
     */
    public void doSomething() {
        System.out.println("饿汉式单例模式：你好，飞翔！");
    }
}
